package com.jijuxie.house.domain.vo;

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.time.LocalDateTime;
import java.util.List;

import lombok.Data;

@Data
public class HouseDetailVO {

    // 基础信息
    private Long houseId;                 // 房源ID
    private String title;                 // 房源标题
    private String description;           // 房源描述
    private BigDecimal price;             // 价格（元）
    private String address;               // 完整地址
    private String province;              // 省份
    private String city;                  // 城市
    private String district;              // 区域

    // 房屋参数
    private Integer bedroom;              // 房间数
    private Integer livingRoom;           // 厅数
    private Integer bathroom;             // 卫生间数
    private BigDecimal area;             // 面积
    private Integer floor;                // 所在楼层
    private Integer totalFloor;           // 总楼层
    private String orientation;           // 朝向
    private String decoration;            // 装修情况

    // 位置信息
    private BigDecimal lng;               // 经度
    private BigDecimal lat;               // 纬度

    // 图片信息
    private List<String> images;          // 房源图片列表
    private String coverImage;            // 封面图片

    // 配套设施
    private List<String> facilities;      // 配套设施列表

    // 经纪人信息
    private Long agentId;                 // 经纪人ID
    private String agentName;             // 经纪人姓名
    private String agentAvatar;           // 经纪人头像
    private String agentPhone;            // 经纪人电话

    // 交互信息
    private Integer collectCount;         // 收藏数
    private Boolean isCollected;          // 是否已收藏
    private String status;                // 房源状态
    private LocalDateTime createTime;     // 创建时间

    // 格式化方法
    public String getFormattedPrice() {
        if (price == null) {
            return "";
        }
        DecimalFormat df = new DecimalFormat("#,###");
        return "¥" + df.format(price);
    }

    public String getFormattedArea() {
        if (area == null) {
            return "";
        }
        DecimalFormat df = new DecimalFormat("#,##0.00");
        return df.format(area) + "㎡";
    }

    public String getFormattedHouseType() {
        return bedroom + "室" + livingRoom + "厅" + bathroom + "卫";
    }

    public String getFormattedFloor() {
        return floor + "/" + totalFloor + "层";
    }

    public String getFullAddress() {
        return province + city + district + address;
    }
}
